jjzjj

JavaScript 和单线程

全部标签

ruby - ruby 一次可以运行的线程数是否有限制?

如果不是,那么在保持高效的情况下,最大值是多少?我正在创建14个线程,每个线程都会打开一个URL列表(大约500个),为每个线程创建一个新线程,然后下载它,并将其添加到MySQL数据库中。MySQL池大小设置为50。这是RoR中的一个rake任务。使用Kernal#fork或其他方法会更好吗? 最佳答案 require'open-uri'a='http://www.example.com'*30arr=a.split('')arr.each_slice(3)do|group|group.mapdo|site|Thread.newdo

ruby - 如何在 javascript 定义的 haml 中运行 ruby​​?

如何在haml中的javascript中运行ruby​​代码?如果我在示例中使用var=#{message},我会得到undefinedlocalvariableormethodmessage当我将-message='itworks'移动到:javascript上方时,一切正常我想在:javascript中运行iteration.each。请参阅最后一个代码示例,了解我在最终javascript代码中需要的内容。我需要在哪里循环几个ruby​​变量(或一个散列的散列?)来获得它。数据(='basics')可以有很少的元素。它可以有元素很少的child等。所以这个haml代码%html%

ruby - 如何从 ruby​​ 线程获取错误消息

我现在遇到了一个问题,我无法看到我的子线程在哪里吐出错误消息,这使得调试变得困难。例如:Thread.new{a=1/0}有什么方法可以在标准错误中打印出所有线程错误吗? 最佳答案 将Thread类的abort_on_exception标志设置为true。或者,将线程主体包裹在throw/catchblock中,并将异常转储到catch中。 关于ruby-如何从ruby​​线程获取错误消息,我们在StackOverflow上找到一个类似的问题: https:/

ruby-on-rails - Rails 中的多线程 : Circular dependency detected while autoloading constant

我有一个Rails应用程序,其中有一个Rake任务,该任务使用并发rubygem提供的多线程函数。有时我会遇到Circulardependencydetectedwhileautoloadingconstant错误。在谷歌搜索了一下后,我发现这与结合使用线程和加载Rails常量有关。我偶然发现了以下GitHub问题:https://github.com/ruby-concurrency/concurrent-ruby/issues/585和https://github.com/rails/rails/issues/26847如此处所述,您需要将从新线程调用的所有代码包装在Rails.a

ruby - 线程池中的死锁

我找不到适合Ruby的ThreadPool实现,所以我写了我的(部分基于这里的代码:http://web.archive.org/web/20081204101031/http://snippets.dzone.com:80/posts/show/3276,但更改为等待/信号和ThreadPool关闭的其他实现。但是在运行一段时间后(有100个线程并处理大约1300个任务),它在第25行死锁-它在那里等待新工作。任何想法,为什么会发生?require'thread'beginrequire'fastthread'rescueLoadError$stderr.puts"Usingther

ruby - 如何获得 JavaScript 样式的哈希访问?

我知道ActiveSupport提供了此功能。h=ActiveSupport::OrderedOptions.newh.boy='John'h.girl='Mary'h.boy#=>'John'h.girl#=>'Mary'但是我已经有一个很大的散列,我想使用点表示法访问该散列。这是我尝试过的:large_hash={boy:'John',girl:'Mary'}h=ActiveSupport::OrderedOptions.new(large_hash)h.boy#=>nil那没有用。我怎样才能使这项工作。我正在使用ruby1.9.2更新:抱歉,我应该提到我不能使用openstruc

ruby - 自动加载在 Ruby 1.9 中是线程安全的吗?

在我看来,自从thisfamousthread以来,Ruby社区一直对自动加载感到恐惧。,出于线程安全原因,不鼓励使用它。有谁知道这在Ruby1.9.1或1.9.2中是否不再是一个问题?我已经看到一些关于在互斥体中包装要求等的讨论,但是1.9变更日志(或者至少是我能够找到的那么多)似乎没有解决这个特定问题。我想知道我是否可以合理地开始在1.9-only库中自动加载而不会有任何合理的悲伤。提前感谢您的任何见解。 最佳答案 因为我也对此感到好奇,所以在2011年对此进行了更新。目前打开了两张工单:http://redmine.ruby-

ruby - Ruby 中的 Javascript 样式 `apply`?

对于Ruby中的方法,有没有类似javascript的apply的?也就是说,如果某些方法被定义为采用一些参数,比如some_method(a,b,c)并且我有一个包含三个项目的数组,我可以调用some_method.apply(the_context,my_array_of_three_items)?编辑:(消除一些困惑):我不太关心调用的上下文,我只是想避免这种情况:my_params=[1,2,3]some_method(my_params[0],my_params[1],my_params[2])相反,我很想知道是否有这样的东西my_params=[1,2,3]some_met

ruby - 使用 HAML 包含 CSS 和 javascript 标签的简短方法

当在HAML中包含javascript或CSS时,您通常必须执行以下操作以包含CSS:%link{:type=>"text/css",:rel=>"stylesheet",:href=>"/css/mycss.css"}对于javascript:%script{:type=>"text/javascript",:src=>"/js/myscript.js"}我想知道HAML是否没有包含这些标签的简短方法(当然是从源获取内容,而不是内联),它省略了对type和的需要rel属性,因为它们无论如何都是不变的。请注意,RubyonRails通过函数提供此功能,但我没有使用rails。

ruby-on-rails - 如何为 Puma 检查 Rails 应用程序的线程安全

我希望使用Puma网络服务器将我的Rails应用程序部署到Heroku。但是,我不太确定是否所有的Gem都是线程安全的。阅读所有Gems的源代码对我们来说不是可行的选择。有没有办法自动检查所有Gem的线程安全性?或者,如果执行/检测到线程不安全代码,Puma会提示/显示特定的错误日志吗? 最佳答案 一般检测不到线程安全。如果有某种方法可以自动检测到它,您的编译器/解释器可能会警告您。Raceconditions无法被自动系统检测到,它们甚至难以重现。取决于您的解释器:CRuby有GIL,所以使用Puma是没有意义的。如果您使用的是J